package com.baijia.services;

import com.baijia.common.dto.request.ChangePwdAndMobileRequest;
import com.baijia.common.dto.request.ChangePwdBySmsCodeRequest;
import com.baijia.common.dto.request.ChangePwdRequest;
import com.baijia.common.dto.request.IsRegistedUserRequest;
import com.baijia.common.dto.response.InternalResponse;

import java.util.Map;

public interface IAccountService {

    /**
     * 根据手机号判断用户是否已注册
     * 
     * @param profileRequest
     * @return
     */
    public InternalResponse<Map<String, Object>> isRegisted(IsRegistedUserRequest isRegistedUserRequest);

    /**
     * 根据手机号+老密码修改密码
     * 
     * @param changePwdRequest
     * @return
     */
    public InternalResponse<Map<String, Object>> updatePassword(ChangePwdRequest changePwdRequest);

    /**
     * 根据手机号+短信验证码修改密码
     * 
     * @param changePwdRequest
     * @return
     */
    public InternalResponse<Map<String, Object>> updatePwdBySmsCode(ChangePwdBySmsCodeRequest changePwdBySmsCodeRequest);

    /**
     * 根据userId修改手机号和密码
     * 
     * @param changePwdAndMobileRequest
     * @return
     */
    public InternalResponse<Map<String, Object>> updatePwdAndMobileByUserId(
        ChangePwdAndMobileRequest changePwdAndMobileRequest);

    /**
     * 根据accountId修改用户的手机号(I18N)
     * 
     * @param appId
     * @param accountId
     * @param countrySymbol
     * @param countryCode
     * @param mobile
     * @return
     */
    public boolean updateMobileByAccountId(Integer appId, Long accountId, String countrySymbol, String countryCode,
        String mobile);

}